Hyungwon Hwang [Wed, 21 Dec 2016 13:22:47 +0000 (22:22 +0900)]
xdnd: Rename XDnD handling signals to more inclusive ones
Rename the signals which have been used to handle XDnd events to more inclusive
ones. So that these signals can be used to handle the DnD events in Wayland.
Florian Müllner [Wed, 1 Mar 2017 19:01:28 +0000 (20:01 +0100)]
telepathyClient: Use a single update for text and timestamp
Commit c6f22826cf added a call to update() to refresh the notification
time for sent and received messages. However as it omits the bannerMarkup
parameter, escaped text like ''' now makes it through verbatim.
Rather than adding the parameter, we can just refresh the timestamp in
the existing update() call to fix the issue - it means the notification
timestamp is only refreshed for received messages, but that reflects
the text shown in the notification, which isn't updated for sent
messages either.
Florian Müllner [Thu, 3 Nov 2016 17:11:54 +0000 (18:11 +0100)]
mpris: Make forward/backward insensitive when unavailable
Media notifications currently always show the forward and backward
buttons as clickable, regardless of whether the corresponding action
is available or not. Media players usually address this by rendering
controls insensitive in this case, so do the same here.
Florian Müllner [Sun, 26 Feb 2017 02:33:26 +0000 (03:33 +0100)]
calendar: Add calendar icon to events
Without the boxy background, event messages look a bit plain and
unaligned with other messages. Adding an icon addresses this,
however as repeating the same icon over and over again in case of
many events would be rather noisy, only show it for the top event
as in the mockups.
Florian Müllner [Sun, 26 Feb 2017 00:54:45 +0000 (01:54 +0100)]
Refine notification style
Update the notification style according to the latest mockups:
- make notification icons smaller and prefer symbolic variants
- remove background box when not hovered/focused
- increase spacing between elements
- use normal text sizes
Florian Müllner [Mon, 27 Feb 2017 01:17:29 +0000 (02:17 +0100)]
calendar: Use relative times for notification timestamps
For notifications in the message list, it is usually less relevant
when exactly it occurred, but how long ago. So rather than showing
the exact time and expecting the user to figuring out the timespan
themselves, change the format to something human readable.
Florian Müllner [Sun, 26 Feb 2017 02:33:26 +0000 (03:33 +0100)]
messageList: Keep secondary actor when showing close button
Currently the secondary actor (if set) and the close button are
exclusive, that is the latter replaces the former on hover. As
the swapping feels rather busy and there's no real reason both
cannot be shown at the same time, keep the secondary actor always
visible.
A welcome side effect is that it no longer needs to be placed at
the end, so we can move the notification timestamp right next to
the corresponding title.
Florian Müllner [Sun, 26 Feb 2017 03:35:43 +0000 (04:35 +0100)]
calendar: Only show section title for other days
The section titles usually don't provide a lot of value - messages
themselves are usually pretty unambiguous about their type, and
having a hidden shortcut to some settings panel or application isn't
essential either - except when showing the selected date when browsing
other days, as it adds context to the listed events. Based on that,
remove the section title as a general MessageListSection feature and
move it into the EventsSection, where we only show it when it is useful.
Florian Müllner [Sun, 26 Feb 2017 02:33:26 +0000 (03:33 +0100)]
calendar: Add "Clear All" button to message list
We will eventually remove section titles from the message list to
reduce visual noise and give the actual information provided by
the messages more space. So in order to not lose the ability to
mass-dismiss messages, the latest mockups spot a "Clear All" button
at the bottom - implement that.
Florian Müllner [Sun, 26 Feb 2017 21:23:11 +0000 (22:23 +0100)]
messageList: Make canClear public and notify on changes
The latest mockups contain a button to clear all sections at once.
As some elements cannot be cleared, we need to provide that information
to avoid offering an action that has no effect.
Florian Müllner [Sat, 25 Feb 2017 00:36:47 +0000 (01:36 +0100)]
weather: Skip loading indication when updating frequently
Weather conditions - at least as far as online services are
concerned - don't usually change in a couple of minutes.
So when updating shortly after a previous update, assume
the current conditions are still valid and trigger an
update without showing a loading indication. This should
help a bit with not getting stuck permanently in loading
state when on a shitty network.
Florian Müllner [Fri, 24 Feb 2017 12:15:39 +0000 (13:15 +0100)]
dateMenu: Add Weather section
Similar to the Clocks integration we've had in the date+time drop-down for
a while, the designs have called for a similar section that integrates
GNOME weather as well. Use the WeatherClient added in the previous commit
to implement that section and add it to the popover.
Florian Müllner [Thu, 23 Feb 2017 21:55:33 +0000 (22:55 +0100)]
weather: Add WeatherClient
In preparation of integrating GNOME Weather, add a helper class that
retrieves weather information according to Weather's configuration
if the application is installed.
Florian Müllner [Sun, 26 Feb 2017 13:37:51 +0000 (14:37 +0100)]
dateMenu: Do a better job at size freezing while browsing dates
In order to avoid distracting popup size changes while browsing
other dates, we freeze the size to the last size request. However
in case of more complex size negotiations - wrapping or ellipsizing
labels, scrollable elements etc. - there's a chance of stray calls
to get_preferred_width/height() that are not used for the actual
allocation. If such a call happens to be the last size request
before the layout is frozen, the saved size will be wrong. To fix
this, save the allocated size rather than the requested one.
Florian Müllner [Fri, 24 Feb 2017 13:56:47 +0000 (14:56 +0100)]
dateMenu: Enforce calendar column width
We want the width of the calendar column to be determined by the
calendar, other elements should adjust their allocation accordingly.
However neither ellipsization nor wrapping will kick in unless the
parent's width is restricted, so use a small custom layout manager
that enforces the desired behavior.
Florian Müllner [Mon, 27 Feb 2017 10:27:52 +0000 (11:27 +0100)]
telepathyClient: Update notification time from message
As the telepathy integration picks up existing channels on startup,
ChatNotifications are another case where the real time the message
was received may be before the time it is picked up by the shell.
While this is less of an annoyance than restored GNotifications, as
it generally only affects restarts from the run dialog, it's an
easy fix now ...
Florian Müllner [Sun, 26 Feb 2017 23:15:29 +0000 (00:15 +0100)]
notificationDaemon: Include timestamp in serialized notifications
GNotifications are persistent until dismissed or withdrawn, including
across restarts. As we show the time a notification was received in the
calendar, we need to include that information when serializing the
notification in order to be correct.
Florian Müllner [Sun, 26 Feb 2017 23:14:09 +0000 (00:14 +0100)]
messageTray: Add optional datetime parameter to notifications
Since the last notification redesign, we've been showing the time a
notification was received in the calendar drop-down. However as the
time is in fact added by the NotificationSection, it is actually the
time a notification was added to the list. Usually that difference is
not significant, except when previously received notifications are
restored on startup.
In order to be able to address those cases, we need a time that is
associated with the notification itself, so add a datetime property
that defaults to the current time, but may be set from an optional
parameter as well.
Florian Müllner [Thu, 23 Feb 2017 21:54:32 +0000 (22:54 +0100)]
dateMenu: Use AppSettingsMonitor for world clocks
When gnome-clocks is installed, there is currently a race between the
GSettings schema being added to the database and the world clocks
session trying to use it. The prize if we win that race is an abort
in GIO, so use the newly added AppSettingsMonitor skip the race
altogether.
Florian Müllner [Thu, 23 Feb 2017 21:50:04 +0000 (22:50 +0100)]
util: Add AppSettingsMonitor
When integrating with optional components like Clocks, it is not safe
to access their GSettings right after the application became visible
to the AppSystem:
Installation is usually not atomic, so the .desktop file may appear
before the settings schema, in which case Gio will abort due to an
"invalid" schema ID.
To address this, add a small helper class that wraps the settings
access in a safe way.
Florian Müllner [Fri, 10 Feb 2017 13:14:14 +0000 (14:14 +0100)]
status: Add nightLight indicator
The display configuration now exposes a setting to automatically
shift the display color at nighttime. As there are cases where
disabling the filtering temporarily is useful, it makes sense to
expose the feature in the system menu for quick access.
Florian Müllner [Mon, 14 Dec 2015 23:37:47 +0000 (00:37 +0100)]
extensionPrefs: Tweak UI
Update according to the latest mockups:
- don't use a border around the list as specified
by the latest HIG version
- use more generous spacing between controls
- allow extension descriptions to take up two lines
- drop GNOME branding from the window title
- make the app name consistent with the window title
Florian Müllner [Mon, 14 Dec 2015 23:15:33 +0000 (00:15 +0100)]
extensionPrefs: Expose kill-switch
While the extension prefs tool is not meant as the primary way for
users to configure extensions - that will be Tweak Tool - it still
doesn't hurt to expose the extension kill switch to easily turn
extensions back on after a session crash.
Florian Müllner [Mon, 14 Dec 2015 22:52:38 +0000 (23:52 +0100)]
extensionSystem: Add kill-switch setting to disable user extensions
When gnome-shell fails to start on login, gnome-session tries to
re-launch it again with all extensions disabled. This is currently
implemented by clearing the list of enabled extensions, which means
the user needs to re-enable their extensions manually again.
To make this process less annoying, add a single 'kill-switch' setting
gnome-session can use without interfering with the user setting.
Florian Müllner [Mon, 2 Mar 2015 11:14:54 +0000 (12:14 +0100)]
system: Switch between alternatives on long-press
On systems that support both shutdown and suspend, the latter operation
is currently only accessible via pressing the Alt key. As using the
keyboard may be inconvenient or simply not possible (e.g. on touch),
allow switching between alternatives via long-press as well.
Florian Müllner [Wed, 4 Mar 2015 18:01:32 +0000 (19:01 +0100)]
appFavorites: Only use renamed ID if it can be resolved
We currently assume that if a .desktop file has been renamed (that
is, it is in our rename list), the updated ID will be used. That
assumption was mostly sound when the list contained only GNOME apps
following the same release cycle as gnome-shell, but as applications
with less ties to the GNOME schedule adopt the reverse DNS notation,
it becomes more likely for apps to appear in the list before actually
being updated on the system. Handle this case by only renaming IDs
for which the replacement can be resolved to an existing application.
Florian Müllner [Wed, 15 Feb 2017 10:47:45 +0000 (11:47 +0100)]
location: Initialize permissions
The permissions hash is initialized after consulting the permission
store, however the lookup is skipped for requests that cannot be
resolved to an application, resulting in an error when accessing
the uninitialized hash for saving. Just make sure that the property
is always initialized to avoid that error.
Florian Müllner [Tue, 14 Feb 2017 17:24:50 +0000 (18:24 +0100)]
Don't mix GJS and GObject signal systems
GJS implements a basic signal system that allows monkey-patching
JS objects with signal methods resembling the GObject ones. However
it's clearly not a good idea to replace the actual GObject methods,
so use the proper GObject facilities when inheriting from GObject.
Benjamin Berg [Mon, 13 Feb 2017 13:52:23 +0000 (14:52 +0100)]
network: Ensure the connection list is sorted after rename
Items were inserted correctly but the synchronisation was lost if the
name of a connection was changed. Simply making sure the position is
correct after a connection is updated fixes the issue.
Reported-by: Oliver Haessler <ohaessle@redhat.com>
https://bugzilla.gnome.org/show_bug.cgi?id=778686
Jonas Ådahl [Mon, 28 Nov 2016 04:54:38 +0000 (12:54 +0800)]
Use the versioned libmutter*.so versions
Mutter now provides versioned libraries and pkg-config files, meaning
an application using libmutter and friends need to depend on a specific
version of the API.
Bastien Nocera [Fri, 10 Feb 2017 20:08:01 +0000 (21:08 +0100)]
portalHelper: Add security icon to titlebar
This adds a security icon (either secure or insecure) to the portal
helper's title bar. As soon as a part or all of the page and its content
is served insecurely, the icon shown will be a broken padlock.
Philip Chimento [Fri, 10 Feb 2017 02:11:28 +0000 (18:11 -0800)]
ibusManager: Use const correctly
Per ES6, a variable declared const should only be valid inside its lexical
scope. Previously, GJS would accept this code, but that will change in the
SpiderMonkey JS engine in the next release of GJS.
Alan Coopersmith [Sat, 24 Sep 2016 18:06:00 +0000 (11:06 -0700)]
Use /proc/self/cmdline on Solaris as well in shell_global_reexec_self()
Solaris 11.3.5 and later have a Linux-compatible implementation of
/proc/self/cmdline, so the code to use it can be enabled in gnome-shell
on Solaris - if used on an older OS, it simply fails to open the file
and returns without doing anything, just as the code did before enabling
this.
https://bugzilla.gnome.org/show_bug.cgi?id=776199
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>